//package com.example.demo;
//
//import lombok.extern.slf4j.Slf4j;
//import org.aspectj.lang.ProceedingJoinPoint;
//import org.aspectj.lang.annotation.*;
//import org.springframework.stereotype.Component;
//
//@Slf4j
//@Aspect
//@Component
//public class AspectDemo {
//    //前置通知
//    @Before("execution(* com.example.demo.controller.*.*(..))")
//    public void doBefore() {
//        log.info("执行 Before 方法");
//    }
//
//    //后置通知
//    @After("execution(* com.example.demo.controller.*.*(..))")
//    public void doAfter() {
//        log.info("执行 After 方法");
//    }
//
//    //返回后通知
//    @AfterReturning("execution(* com.example.demo.controller.*.*(..))")
//    public void doAfterReturning() {
//        log.info("执行 AfterReturning 方法");
//    }
//
//    //抛出异常后通知
//    @AfterThrowing("execution(* com.example.demo.controller.*.*(..))")
//    public void doAfterThrowing() {
//        log.info("执行 doAfterThrowing 方法");
//    }
//
//    //添加环绕通知
//    @Around("execution(* com.example.demo.controller.*.*(..))")
//    public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {
//        log.info("Around 方法开始执行");
//        Object result = joinPoint.proceed();
//        log.info("Around 方法结束执行");
//        return result;
//    }
//}
